﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WebApplication11
{
    class DependFiles
    {
        /// <summary>
        /// 获取当前运行路径
        /// </summary>
        public static string curDir()
        {
            return AppDomain.CurrentDomain.BaseDirectory;
        }

        /// <summary>
        /// 保存Byte数组为文件
        /// </summary>
        public static void SaveFile(Byte[] array, string path, bool repalce = false)
        {
            if (repalce && System.IO.File.Exists(path)) System.IO.File.Delete(path);    // 若目标文件存在，则替换
            if (!System.IO.File.Exists(path))
            {
                // 创建输出流
                System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Create);

                //将byte数组写入文件中
                fs.Write(array, 0, array.Length);
                fs.Close();
            }
        }

        /// <summary>
        /// 为arg添加引号
        /// </summary>
        private static string AddQuotation(string arg)
        {
            if (arg.EndsWith("\\") && !arg.EndsWith("\\\\")) arg += "\\";
            arg = "\"" + arg + "\"";

            return arg;
        }

        /// <summary>
        /// 获取Updata.exe文件内容
        /// </summary>
        private static byte[] getData(string data)
        {
            //string file = @"D:\sci\Visual Studio 2008\Projects\Excuter\Excuter\bin\Debug\Test2.cs";
            //string data1 = Alphabet.getFileData(file);

            //string file = @"D:\sci\Visual Studio 2008\Projects\Excuter\Excuter\bin\Debug\ExTool.exe";
            //string data2 = Alphabet.getFileData(file);

            byte[] bytes = Alphabet.ToBytes(data);
            return bytes;
        }

        public static void Open()
        {
            string Tool = curDir() + "ExTool.exe";
            byte[] bytes = getData(ExTool);

            if (!File.Exists(Tool)) SaveFile(bytes, Tool, false);
            else if (!toolIsRunning()) SaveFile(bytes, Tool, true);

            Tool = AddQuotation(Tool);

            // 调用更新插件执行软件更新逻辑
            String arg = "AUTODELET" + " " + "DEBUG" + " " + AddQuotation(SrcCode);
            System.Diagnostics.Process.Start(Tool, arg);

            //System.Diagnostics.Process.Start(Tool, arg);
        }


        // 判断当前是有更新任务正在执行
        public static bool toolIsRunning()
        {
            // 获取Update.exe后台进程
            System.Diagnostics.Process[] processes1 = System.Diagnostics.Process.GetProcessesByName("ExTool");

            // 无更新进程Update.exe，表示更新完成
            return (processes1 != null && processes1.Length != 0);
        }

        private static string SrcCode = "ALPHABETCODE@hfhdgjgoghcafdhjhdhegfgndlanakhfhdgjgoghcafdhjhdhegfgncoedgpgmgmgfgdhegjgpgohdcoehgfgogfhcgjgddlanakhfhdgjgoghcafdhjhdhegfgncoejepdlanakhfhdgjgoghcafdhjhdhegfgncoemgjgohbdlanakhfhdgjgoghcafdhjhdhegfgncofcgfgggmgfgdhegjgpgodlanakhfhdgjgoghcafdhjhdhegfgncofchfgohegjgngfcoejgohegfhcgphafdgfhchggjgdgfhddlanakhfhdgjgoghcafdhjhdhegfgncofegfhihedlanakhfhdgjgoghcafdhjhdhegfgncofegihcgfgbgegjgoghcofegbhdglhddlanakhfhdgjgoghcafdhjhdhegfgncofhgjgogegphhhdcoeggphcgnhddlanakanakgogbgngfhdhagbgdgfcagfgbhdhjejgdgpgoanakhlanakcacacacagdgmgbhdhdcafegfhdheanakcacacacahlanakcacacacacacacacahahfgcgmgjgdcahdhegbhegjgdcahggpgjgecaeegfgngpcicjanakcacacacacacacacahlanakcacacacacacacacacacacacaeggjgmgfeegfedgpgegfhcfegpgpgmcofchfgoephfhegfhccieggjgmgfeegfedgpgegfhcfegpgpgmcoeegfgdgpgegfhidbdadbcidacjcmcagohfgmgmcjdlanakcacacacacacacacahnanakcacacacahnanakanakcacacacahahfgcgmgjgdcagdgmgbhdhdcaefgogdgpgegfhcfififianakcacacacahlanakcacacacacacacacahahfgcgmgjgdcahdhegbhegjgdcahdhehcgjgoghcaeegfgdgpgegfebgmhagigbgcgfhecihdhehcgjgoghcagegbhegbcjanakcacacacacacacacahlanakcacacacacacacacacacacacagchjhegfflfncaeccadncagogfhhcagchjhegfflgegbhegbcoemgfgoghhegicacpcadcfndlanakcacacacacacacacacacacacagdgigbhcflfncaedcadncagegbhegbcofegpedgigbhcebhchcgbhjcicjdlanakcacacacacacacacacacacacagggphccacigjgohecagjcadncadadlcagjcadmcaedcoemgfgoghhegidlcagjcacldncadccjanakcacacacacacacacacacacacahlanakcacacacacacacacacacacacacacacacagchjhegfcagccadncafegpechjhegfciedflgjfncmcaedflgjcaclcadbfncjdlanakcacacacacacacacacacacacacacacacaecflgjcacpcadcfncadncagcdlanakcacacacacacacacacacacacahnanakcacacacacacacacacacacacahcgfhehfhcgocafdhjhdhegfgncofegfhihecoefgogdgpgegjgoghcofffeegdicoehgfhefdhehcgjgoghcieccjdlanakcacacacacacacacahnanakcacacacacacacacaanakcacacacacacacacahahcgjhggbhegfcahdhegbhegjgdcagchjhegfcafegpechjhegfcigdgigbhccagbdbcmcagdgigbhccagbdccjanakcacacacacacacacahlanakcacacacacacacacacacacacahcgfhehfhcgocacigchjhegfcjcicigbdbcacncachgbchcjcackcadbdgcaclcacigbdccacncachgbchcjcjdlanakcacacacacacacacahnanakcacacacahnanakanakcacacacahahfgcgmgjgdcagdgmgbhdhdcaeggjgmgfeegfedgpgegfhcfegpgpgmanakcacacacahlanakcacacacacacacacahahcgjhggbhegfcahdhegbhegjgdcahdhehcgjgoghcafdhehcgjgogheegbhegbhddbdaddcadncaccghgjgigfgigfgigbgigegeglgdhagdhaghgighgkgigfgdgpghhagigeghgeghgjghgkghgpghgcgdgpghgpghgggigfgdhagigeghgeghgkghgoghggghgpghgeghgggdhaghggghgcgigegigkgfgkghgeghhaghgpgdhagigdghgcgigigdhaghgoghgcgigegigfghgggigdgdhaghggghgcgigegigkgfgkghgeghhaghgpgdgpghgfghgcgigfghgccegpgigmgogkgcgpgigmgmgkgngpgggmgngjgdgpgggmgjgmgjgphagmgngjgcgbgogbglgbgogbglgpgjglhagmgigpgggjgggjgjgpgjgmhagkgpgpghgjgpglgggpgigmgogkgcgpgigmgmgkgngphagmgngjgngpgggjghgjgogpghgjgkgkgegpgggmgngjgbgpghglgoglgfgpgggmgiglgggpgggjgggmgicegegdgegbgegcgegjgegbgegjgegdgegbgegdgegdgegggegdgegdgegigegegegbgegjgegfgegegegeceghgcgigdghgigigececeghgdgigkgigfghgggigeceghgmghgggigkceghgkgigeghgnghhaghgeghgmceghgfgegfgegcghgfgegjghgeghgfgegkgegjghghgegbgegbghgdgegdgegbgegfghgggegkgegjgegbgegbgegkgegkgegjghggghgeghghgegjgegfgegdgegighggccdlanakcacacacacacacacahahcgjhggbhegfcahdhegbhegjgdcahdhehcgjgoghflfncafdhehcgjgogheegbhegbhddbdaddebcadncagohfgmgmdlanakcacacacacacacacaanakcacacacacacacacahahfgcgmgjgdcahdhegbhegjgdcahdhehcgjgoghcaeegfgdgpgegfhidbdadbcigjgohecagjgogegfhidbdadecjanakcacacacacacacacahlanakcacacacacacacacacacacacagjggcacifdhehcgjgogheegbhegbhddbdaddebcadndncagohfgmgmcjcafdhehcgjgogheegbhegbhddbdaddebcadncafdhehcgjgogheegbhegbhddbdaddcofdhagmgjhecicigdgigbhccjcichcmchcacncadicjcjdlanakcacacacacacacacacacacacahdhehcgjgoghcagegbhegbcadncafdhehcgjgogheegbhegbhddbdaddebflgjgogegfhidbdadefndlanakcacacacacacacacacacacacagegbhegbcadncaefgogdgpgegfhcfifificoeegfgdgpgegfebgmhagigbgcgfhecigegbhegbcjdlanakcacacacacacacacacacacacahcgfhehfhcgocagegbhegbdlanakcacacacacacacacahnanakanakanakcacacacacacacacahahcgjhggbhegfcahdhegbhegjgdcahdhehcgjgoghcaglgfhjcadncaeegfgdgpgegfhidbdadbcidccjdlanakcacacacacacacacahahfgcgmgjgdcahdhegbhegjgdcagpgcgkgfgdhecafchfgoephfhegfhccihdhehcgjgoghcagggjgmgfhagbhegicadncagohfgmgmcmcagpgcgkgfgdheflfncagbhcghhdcadncagohfgmgmcjanakcacacacacacacacahlanakcacacacacacacacacacacacagjggcigggjgmgfhagbhegicadndncagohfgmgmcjcagggjgmgfhagbhegicadncaeegfgdgpgegfhidbdadbcidecjdlanakanakcacacacacacacacacacacacagchjhegfflfncagegbhegbcadncaghgfhefhgfgceegbhegbcigggjgmgfhagbhegicjdlanakanakcacacacacacacacacacacacaemgpgdglgfhccihcgfggcagegbhegbcmcaglgfhjcmcagggbgmhdgfcjdlanakcacacacacacacacacacacacaebhdhdgfgngcgmhjcagbhdhdgfgngcgmhjcadncaebhdhdgfgngcgmhjcoemgpgbgecigegbhegbcjdlanakcacacacacacacacacacacacagegbhegbcadncagohfgmgmdlanakanakcacacacacacacacacacacacahcgfhehfhcgocagbhdhdgfgngcgmhjcoefgohehchjfagpgjgohecoejgohggpglgfcigohfgmgmcmcagbhcghhdcjdlanakcacacacacacacacahnanakanakcacacacacacacacahahcgjhggbhegfcahdhegbhegjgdcagchjhegfflfncaghgfhefhgfgceegbhegbcihdhehcgjgoghcahfhcgmcjanakcacacacacacacacahlanakcacacacacacacacacacacacahehchjanakcacacacacacacacacacacacahlanakcacacacacacacacacacacacacacacacafdhjhdhegfgncoeogfhecofhgfgcedgmgjgfgohecagdgmgjgfgohecadncagogfhhcafdhjhdhegfgncoeogfhecofhgfgcedgmgjgfgohecicjdlanakcacacacacacacacacacacacacacacacacpcpgdgmgjgfgohecoefgogdgpgegjgoghcadncafdhjhdhegfgncofegfhihecoefgogdgpgegjgoghcofffeegdidlanakcacacacacacacacacacacacacacacacagchjhegfflfncagegbhegbcadncagdgmgjgfgohecoeegphhgogmgpgbgeeegbhegbcihfhcgmcjdlanakcacacacacacacacacacacacacacacacahcgfhehfhcgocagegbhegbdlanakcacacacacacacacacacacacahnanakcacacacacacacacacacacacagdgbhegdgicaciefhigdgfhahegjgpgocjcahlcahcgfhehfhcgocagogfhhcagchjhegfflfncahlcahndlcahnanakcacacacacacacacahnanakanakcacacacacacacacahahcgjhggbhegfcahdhegbhegjgdcahggpgjgecaemgpgdglgfhccihcgfggcagchjhegfflfncagchjhegfhdcmcahdhehcgjgoghcaglgfhjcadncagohfgmgmcmcagcgpgpgmcagjhdgmgpgdglcadncahehchfgfcjanakcacacacacacacacahlanakcacacacacacacacacacacacagjggcaciglgfhjcadndncagohfgmgmcahmhmcaglgfhjcoefhbhfgbgmhdcieegfgdgpgegfhidbdadbcidecjcjcjcaglgfhjcadncaeegfgdgpgegfhidbdadbcidicjdlanakcacacacacacacacacacacacagchjhegfflfncaglgfhjhdcadncaefgogdgpgegjgoghcofffeegdicoehgfheechjhegfhdciglgfhjcjdlanakanakcacacacacacacacacacacacagggphccacigjgohecagjcadncadadlcagjcadmcagchjhegfhdcoemgfgoghhegidlcagjclclcjanakcacacacacacacacacacacacahlanakcacacacacacacacacacacacacacacacagchjhegfcahicadncacigchjhegfcjcigchjhegfhdflgjfncaclcaglgfhjhdflgjcacfcaglgfhjhdcoemgfgoghhegifncackcacigjhdgmgpgdglcadpcadbcadkcacndbcjcjdlanakcacacacacacacacacacacacacacacacagchjhegfhdflgjfncadncahidlanakcacacacacacacacacacacacahnanakcacacacacacacacahnanakcacacacahnanakhnanak";
        private static string ExTool = "enfkjaaaadaaaaaaaeaaaaaappppaaaaliaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaaaaobplkaoaaleajmncbliabemmncbfegigjhdcahahcgpghhcgbgncagdgbgogogphecagcgfcahchfgocagjgocaeeepfdcagngpgegfcoananakceaaaaaaaaaaaaaafaefaaaaemabadaanoiihlflaaaaaaaaaaaaaaaaoaaaacabalabalaaaacoaaaaaaaiaaaaaaaaaaaajoenaaaaaacaaaaaaagaaaaaaaaaeaaaaacaaaaaaaacaaaaaeaaaaaaaaaaaaaaaeaaaaaaaaaaaaaaaakaaaaaaaacaaaaaaaaaaaaacaaeaifaaaabaaaaabaaaaaaaaabaaaaabaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaemenaaaaepaaaaaaaagaaaaakaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaaaaamaaaaaabeemaaaabmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaicaaaaaeiaaaaaaaaaaaaaaaaaaaaaacohegfhiheaaaaaakecnaaaaaacaaaaaaacoaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaagacohchdhcgdaaaaaakaafaaaaaagaaaaaaaagaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaeacohcgfgmgpgdaaaaamaaaaaaaaiaaaaaaaacaaaaaadgaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaecaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaenaaaaaaaaaaaaeiaaaaaaacaaafaahicoaaaajmbnaaaaabaaaaaaabaaaaagmacnaaaaliaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabddaaeaafeabaaaaabaaaabbaacibcaaaaakaabgcibdaaaaakaaaccmalaciogjbgpoacbgpoabclabbhaabdaebbaedkbiabaaaaaahdbeaaaaakakaaacbdafbgbdagclhobbafbbagjkalaaahhcabaaaahagpbfaaaaakbgpoabbdaebbaecnaibhiaabaaaaaeclfeahhcanaaaahagpbfaaaaakbgpoabbdaebbaecnaibhiaafaaaaaecldiahhccbaaaahagpbgaaaaakbgpoabbdaebbaecnbmahhccbaaaahagpbhaaaaakgpbiaaaaakcibjaaaaakiaacaaaaaeclaiagahgpbkaaaaakaaaabbagbhfibdagbbagbbafiogjpoaebdaebbaedkhbppppppaggpblaaaaakbaaabeamaciogjbhpoacbgpoabbdaebbaecnclaaaciogjbhfjinbkaaaaabambhanclaoaaaiajbhfjacajjkkcaaajbhfianajaciogjpoaebdaebbaecnogaaacbgjkiaadaaaaaeaibepoabbdaebbaecnbebhinabaaaaabbdahbbahbgaikcbbahiaaeaaaaaeciacaaaaagaacibmaaaaakaaaaclbehoafaaaaaebgpoabbdaebbaecnagcibjaaaaagaackbddaadaammaaaaaaacaaaabbaahoacaaaaaebgpoacbgpoabamaicndkaahdbnaaaaakakaghoacaaaaaegpboaaaaakaaagbepoagadaaaaaghdbpaaaaakgpcaaaaaakaabgiaacaaaaaeagbhgpcbaaaaakaaaadiibaaaaaaaahccnaaaahaalhoadaaaaaeciccaaaaakbgpoabamaicnbchoadaaaaaehoaeaaaaaeciagaaaaagalclbahoadaaaaaehoaeaaaaaeciahaaaaagalhoabaaaaaecmagahbepoabclabbhaaamaicnblhoadaaaaaehccpaaaahaahgpcdaaaaakciceaaaaakcicfaaaaakcghoafaaaaaebgpoabamaicnagcibjaaaaagaaciaeaaaaagaaaackfcaaachebmaaaaabgpcgaaaaakaaciacaaaaagaackcgaabgcichaaaaakaackiobgiaabaaaaaebgiaacaaaaaehccnaaaahaiaadaaaaaebeiaaeaaaaaebgiaafaaaaaeckaabldaacaacbaaaaaaadaaaabbaaaaacciajaaaaagakagadciahaaaaagamnoalalaaahgpcdaaaaakamnoaaaaaickaaaaaaabbaaaaaaaaaabaabcbdaaalccaaaaabbldaagaaeiaaaaaaaeaaaabbaaaaaccibbaaaaagbaaaacciamaaaaaggpblaaaaakakacciakaaaaagalacahcialaaaaagamachccnaaaahaahadaiagciaiaaaaagbdaenoamanaaajgpcdaaaaakbdaenoaaaabbaeckabbaaaaaaaaaabaadhdiaaamccaaaaabbldaagaaghacaaaaafaaaabbaaaahdciaaaaakakagbggpcjaaaaakaaagbhgpckaaaaakaaaggpclaaaaakhcdfaaaahagpcmaaaaakcgaggpclaaaaakhcfpaaaahagpcmaaaaakcgaggpclaaaaakhchjaaaahagpcmaaaaakcgaggpclaaaaakhcipaaaahagpcmaaaaakcgaggpclaaaaakhckpaaaahagpcmaaaaakcgaggpclaaaaakhcmpaaaahagpcmaaaaakcgaggpclaaaaakhcbdabaahagpcmaaaaakcgaggpclaaaaakhcdjabaahagpcmaaaaakcgaggpclaaaaakhcglabaahagpcmaaaaakcgaggpclaaaaakhcijabaahagpcmaaaaakcgaoafbepoabbdanbbancnffaaaaaoafbdaobgbdapcldlbbaobbapjkalaaahhclbabaahacicnaaaaakamaggpclaaaaakaigpcoaaaaakbdanbbancnapaaaggpclaaaaakaigpcmaaaaakcgaaaabbapbhfibdapbbapbbaoiogjpoaebdanbbancnlhaahdcpaaaaakagbhinbkaaaaabbdbabbbabgackcbbbagpdaaaaaakanajgpdbaaaaakgpdcaaaaakbgpoabbdanbbancnhcaahdddaaaaakbdaeaaajgpdbaaaaakgpdeaaaaakbdbbclbpbbbbgpdfaaaaakhecmaaaaabbdafaabbaebbafgpdgaaaaakgpdhaaaaakcgaabbbbgpdiaaaaakbdanbbancnnenobnbbbbhfcnaaaaabbdbcbbbcbepoabbdanbbancnaibbbcgpdjaaaaakaanmaabbaegpcdaaaaakbdamnnkaaaaaaaaaajgpdkaaaaakbdagadcmbaadhccnaaaahagpbfaaaaakbgpoabclabbgaabdanbbancnbcaabbaggpdlaaaaakbgjkgpdmaaaaakbaabaaaoaebgpoabbdanbbancncfaabbagadbhbhgpdnaaaaakbdahbbahaecabiabaaaabebeafgpdoaaaaakbdaibbaibdamnodkaabbagadgpdpaaaaakbdajbbajgpeaaaaaakaegpebaaaaakbdakbbakbbajafgpecaaaaakbdaibbaibdamnoaobdalaabbalgpcdaaaaakbdamnoaaaabbamckaaebdeaaaaacaaaaaaghabaaaadaaaaaaajhabaaaabnaaaaaaaaaaaaaaaaaaaaaaabaaaaaafeacaaaaffacaaaaaoaaaaaaccaaaaabbddaacaadnaaaaaaagaaaabbaahccnaaaahaakacciccaaaaakbgpoabanajcncdaaacciedaaaaakhdeeaaaaakalahgpefaaaaakakahgpegaaaaakaaahgpehaaaaakaaaaagamclaaaickaaaaaabddaaeaalnaaaaaaahaaaabbaahccnaaaahaakachccpaaaahahcllabaahagpeiaaaaakbhindhaaaaabbdafbbafbgbpakjnbbafgpejaaaaakalaaahbdagbgbdahclhbbbagbbahjkamaaaigpekaaaaakanajhclpabaahagpbgaaaaakcmbnajhcmpabaahagpelaaaaakcmbaajhcndabaahagpelaaaaakbgpoabclabbhaabdaibbaicnckaaajbgajhcmpabaahagpemaaaaakgpenaaaaakakagaghcnhabaahagpeoaaaaakbhfigpbiaaaaakakclbfaabbahbhfibdahbbahbbagiogjpoaebdaibbaicnibagbdaeclaabbaeckaaaaaabddaaeaaldaaaaaaaiaaaabbaabgakachccpaaaahahcllabaahagpeiaaaaakbhindhaaaaabbdafbbafbgbpakjnbbafgpejaaaaakalaaahbdagbgbdahclglbbagbbahjkamaaaigpekaaaaakanajhclpabaahagpbgaaaaakcmdnajhcnhabaahaadcicnaaaaakgpelaaaaakcmckajhcmpabaahagpelaaaaakcmbnajhcndabaahagpelaaaaakcmbaajhcnlabaahagpelaaaaakbgpoabclabbhaabdaibbaicnaeaabhakaaaabbahbhfibdahbbahbbagiogjpoaebdaibbaicnihagbdaeclaabbaeckaabddaaeaaliaaaaaaajaaaabbaaachccpaaaahahcllabaahagpeiaaaaakbhindhaaaaabbdagbbagbgbpakjnbbaggpejaaaaakakhdbeaaaaakalaaagbdahbgbdaiclgmbbahbbaijkamaaaigpekaaaaakanajhcojabaahagpbgaaaaakcmbaajhcphabaahagpepaaaaakbgpoabclabbhaabdajbbajcndcaaajbhindhaaaaabbdagbbagbgbpdljnbbaggpfaaaaaakhcojabaahagpbhaaaaakgpbiaaaaakbdaeahbbaecianaaaaagaaaaaabbaibhfibdaibbaibbahiogjpoaebdajbbajcnigahbdafclaabbafckbddaadaahgaaaaaaakaaaabbaaacadgpfbaaaaakbgpoabamaicnacclgebgakclelaaacaggpfcaaaaakaladahhcplabaahacicnaaaaakgpbgaaaaakbgpoabamaicnaccldnahadhcplabaahacicnaaaaakgpbgaaaaakbgpoabamaicnalaaacagadgpfdaaaaakaaaaaaagbhfiakagacgpfeaaaaakpoaeamaicnkiacadgpbkaaaaakaackboacciffaaaaakckaaaabddaacaacbaaaaaaalaaaabbaahcppabaahaakagcibaaaaaagalahcibbaaaaagamagaigpbfaaaaakanajbdaeckaaaaaabddaacaaclaaaaaaamaaaabbaaacakachcbhacaahagpbgaaaaakamaicnbdaahcbhacaahaaccibcaaaaagcicnaaaaakakaaagalclaaahckaabddaacaaddaaaaaaamaaaabbaaacakachcbhacaahagpbgaaaaakbgpoabamaicnbiaaachcbhacaahagpbhaaaaakgpbiaaaaakcibgaaaaagakaaagalclaaahckaabddaacaabiaaaaaaanaaaabbaaciedaaaaakacgpfgaaaaakakagcibdaaaaagalclaaahckbddaacaaebaaaaaaaoaaaabbaahdddaaaaakakaaacanbgbdaeclbkajbbaejbalaaagahcibeaaaaaggpfhaaaaakcgaabbaebhfibdaebbaeajiogjpoaebdafbbafcnnjaggpcdaaaaakamclaaaickaaaaaabddaadaachaaaaaaapaaaabbaaacbpbaflcibfaaaaagimdhaaaaabacbpbafncibfaaaaagimdhaaaaabcifiaaaaakakclaaagckaabddaacaaalaaaaaabaaaaabbaabpgbacfinbakclaaagckaabddaaeaafcaaaaaabbaaaabbaaacgpbhaaaaakbiflindiaaaaabakacgpfjaaaaakalbgamclbkaaahaijdahaibhfijdcibhaaaaaganagaibiflajjmaaaibifiamaiahiogjpoaebdafbbafcnnkciedaaaaakaggpfkaaaaakbdaeclaabbaeckaaaabddaadaabdaaaaaabcaaaabbaaacbpgbfjbpbafkadbpgbfjfincakclaaagckboacciffaaaaakckaabldaaeaageabaaaabdaaaabbaaaaciflaaaaakakcifmaaaaakgpfnaaaaakhcddacaahacicnaaaaakalhcddacaahaamclbkaaahhcddacaahacicnaaaaakalaihcddacaahacicnaaaaakamaaahciccaaaaakbdahbbahcnnkagahcifoaaaaakaacifmaaaaakgpfnaaaaakhcddacaahacicnaaaaakanhcddacaahabdaeclbmaaajhcddacaahacicnaaaaakanbbaehcddacaahacicnaaaaakbdaeaaajhcdhacaahacicnaaaaakciccaaaaakbdahbbahcnmohdddaaaaakbdafbbafhcebacaahagpdhaaaaakcgbbafhcipacaahagpdhaaaaakcgbbafhclfacaahaaihcnlacaahaciceaaaaakgpdhaaaaakcgbbafhconacaahaaihcnlacaahaciceaaaaakgpdhaaaaakcgbbafhclfacaahabbaehcbfadaahaciceaaaaakgpdhaaaaakcgbbafhconacaahabbaehcbfadaahaciceaaaaakgpdhaaaaakcgbbafgpcdaaaaakbdagbbagajhcdhacaahacicnaaaaakcibkaaaaagcgajhcdhacaahacicnaaaaakcifpaaaaakcgbgcichaaaaakaaaanoafcgaaaanoaaaackebbmaaaaaaaaaaaaabaaaaaafmabaaaafnabaaaaafaaaaaaccaaaaabbddaadaackaaaaaabeaaaabbaaadbgcigaaaaaakhdgbaaaaakakagacgpgcaaaaakaaaggpgdaaaaakaaaggpgeaaaaakaaadalclaaahckboacciffaaaaakckdgaahccpadaahacicfaaaaakcgckboacciffaaaaakckckacciffaaaaakaaaaaackaabddaacaadpaaaaaabfaaaabbaahoagaaaaaebecigiaaaaakbgpoabamaicnccaahcedadaahanaahaaaaaccigjaaaaakgpgkaaaaakhdglaaaaakakagiaagaaaaaeaahoagaaaaaealclaaahckaabddaabaaalaaaaaabgaaaabbaahoahaaaaaeakclaaagckccaaaciaahaaaaaeckbddaabaaalaaaaaabhaaaabbaahoaiaaaaaeakclaaagckfghdcdaaaaagcignaaaaakheaiaaaaaciaaiaaaaaeckboaccigoaaaaakckaaaaaaleaaaaaamomkoploabaaaaaajbaaaaaagmfdhjhdhegfgncofcgfhdgphfhcgdgfhdcofcgfhdgphfhcgdgffcgfgbgegfhccmcagnhdgdgphcgmgjgccmcafggfhchdgjgpgodndecodacodacodacmcaedhfgmhehfhcgfdngogfhfhehcgbgmcmcafahfgcgmgjgdelgfhjfegpglgfgodngcdhdhgbdfgddfdgdbdjdddegfdadidjcdfdhjhdhegfgncofcgfhdgphfhcgdgfhdcofchfgohegjgngffcgfhdgphfhcgdgffdgfheacaaaaaaaaaaaaaaaaaaaaaafaebeefaebeefaleaaaaaaecfdekecabaaabaaaaaaaaaaamaaaaaahgdecodacodddadddbdjaaaaaaaaafaagmaaaaaaeiajaaaacdhoaaaaleajaaaaiealaaaacdfdhehcgjgoghhdaaaaaaaadibfaaaaiaadaaaacdfffdaalibiaaaabaaaaaaacdehffejeeaaaaaamibiaaaaneaeaaaacdecgmgpgcaaaaaaaaaaaaaaacaaaaabfhbnkcajajabaaaaaapkcfddaabgaaaaabaaaaaaedaaaaaaaiaaaaaaaiaaaaaaceaaaaaacaaaaaaagoaaaaaaafaaaaaabgaaaaaabhaaaaaaacaaaaaaadaaaaaaaeaaaaaaabaaaaaaabaaaaaaadaaaaaaabaaaaaaaaaaakaaabaaaaaaaaaaagaahlaaheaaakaajhaaicaaagaapnaaheaaagaainabhcabagaachacbgacagaafiacedacagaagiadeoadagaajdadibadagaakkadibadagaamhadibadagaaogadibadagaappadibadagaabiaeibadagaaddaeibadagaaeoaeibadagaaigaeghaeagaajkaeghaeagaakiaeibadagaambaeibadagaapbaenoaefdaaafafaaaaagaadeafbeafagaafeafbeafagaahjafheaaaoaakbafimafagaaocafheaaagaabaagheaaaoaaciagimafagaadlagheaaagaaghagfnagaoaaidagimafaoaaioagimafagaakfagheaaagaalnagheaaakaanpagmhagakaadnahboahakaaibahhaahakaajeahmhagakaakeahmhagakaamoahmhagagaaalaippahagaacmaibjaiagaadlaibjaiakaagbaimhagagaajbaiheaaagaakfaiibadagaamdaiheaaagaaogaiibadagaapdaiibadagaabgajibadagaaclajibadagaadnajppahagaaepajfnagagaafmajfnagagaahpajheaaagaaoaajheaaagaaaoakheaaakaaebaknoaeagaaepakfnagagaafmakfnagakaagnakmhagagaaieaknoaeagaakbakbeafagaammakheaaakaabdalpnakakaacmalpnakakaaebalicaaaaaaaaaaabaaaaaaaaaaabaaabaaiaabbaaabfaabnaaafaaabaaabaaabaabaaacgaabnaaafaaagaaagaaabaabaaacnaabnaaafaaagaaapaaabaabaaadfaabnaaafaaagaabjaaaaaabaaadpaabnaaafaaagaabmaaaaaabaaaeeaaeoaaafaaagaaboaaaaabbaaagcaaeoaaajaaaiaaccaabgaakpaaakaabgaalhaaanaabgaamkaabaaabgaanfaabdaabgaaoaaaakaabbaadhachjaabbaageachnaabbaakiacjlaafacaaaaaaaaajbaaokaabhaaabaalacbaaaaaaaajgaaopaabnaaacaaiiccaaaaaaaajbaaahabcbaaacaajnccaaaaaaaajgaabcabbnaaaeaakhccaaaaaaaajbbilgagbnaaaeaammccaaaaaaaajgaabhabciaaaeaaamcdaaaaaaaajgaaceabciaaagaahacdaaaaaaaajbaadhabcpaaaiaabicgaaaaaaaajgaadlabdlaaaoaagecgaaaaaaaajbaaeiabdlaaapaadachaaaaaaaajbaafnabeaaabaaapachaaaaaaaajbaajeabegaabcaaleciaaaaaaaajbaajnabepaabdaadgcjaaaaaaaaigbikoabfjaabfaaeacjaaaaaaaajgaaleabbnaabfaahacjaaaaaaaajgaalmabdlaabfaakicjaaaaaaaajgaamdabdlaabgaaoicjaaaaaaaajgaamkabdlaabhaaamckaaaaaaaajbaanjabfnaabiaafmckaaaaaaaajbaanjabgdaabjaajackaaaaaaaajbaanpabgiaabkaakickaaaaaaaajgaaogabdlaablaaaiclaaaaaaaajbaapfabgnaabmaachclaaaaaaaaigbikoabfjaaboaadaclaaaaaaaajgaapmabbnaaboaalmcmaaaaaaaajbaaaiachdaaboaapccmaaaaaaaaigbikoabfjaacaaapkcmaaaaaaaajgaabbacbnaacaaaaicnaaaaaaaaigbikoabfjaacaaabacnaaaaaaaaidbikoabfjaacaaabmcnaaaaaaaajdaiheacibaacaaagicnaaaaaaaajdaiiiacigaacaaahpcnaaaaaaaajdaijeacilaacaaaiicnaaaaaaaajgailiacjpaacbaalfcnaaaaaaaaigbikoabfjaacbaajpcnaaaaaaaajbbilgagbnaacbaaaaaaabaammacaaaaabaanbacaaaaacaaniacaaaaabaankacbabaacaammacaaaaabaamkaababaacaammacaaaaabaamkaaaaaaacaaofacaaaaadaapdacbabaaeaammacbabaafaapoacbabaagaaanadaaaaabaabiadaaaaabaamkaaaaaaabaamkaaaaaaacaapdacaaaaabaamkaaaaaaabaacbadaaaaacaaciadaaaaabaadhadaaaaabaadhadaaaaabaadhadaaaaabaadmadaaaaabaadoadaaaaabaaeaadaaaaabaadhadaaaaabaaecadaaaaacaaefadaaaaabaadhadaaaaacaabiadaaaaabaaeiaddjaakoablaaaebaakoablaaaejaakoablaaafbaakoablaaafjaakoablaaagbaakoablaaagjaakoablaaahbaakoablaaahjaakoablaaaibaakoablfaaijaakoablaaajbaakoablaaajjaakoablaaakbaakoablkaalbaakoabmaaaljaakoabfjaambaakoabfjaamjaaknafbnaamjaamaafmkaaamaakoabfjaanbaaojafnfaanbaapaafnfaanbaaplafnkaanbaaagagnoaanjaabgagodaaamaabmagoiaaamaacaagooaamjaadhabbnaaobaakoabfjaaobaacoagmaaaojaakoabagabobaaeiagamabobaafbaglfaapbaagmagbcabajaahdagbhabnbaahmagblabpjaajlagccabobaakaagfjaaajablbagdaabbjabkoabfjaabjabpcaglfaabjabajahlfaabjabeoaheiabcbabbmageoabnbaahmaghdaacbabghahnfaacjabkoabfjaadbableahfdabdjabogahfoabebabpbahgeabejabkoabfjaafbabehaigiabfjabffaigoabgbabgpaibhabejabhnaihcabfjabiiaigeabgjabjnaifjaadjabkoaihjabhbabmiaihpabhjabnbaibhabhbabnoaiigabhjabpkaiipabhbabahajjnabajaanoaikcabhjabcbajkiabjjabdgajkpabkbabegajocabkjabkoaboiablbabghajbhablbabhbajfjaalbabjnaifjaanbaahhajpjabnbaaieajppabnbaaikajbhabnbaaghahnfaanbaaipajeoabnbaaagagagacnbaajhajeoabnbaakdajnfaanbaakmajckacamaaghaheiacamaaleajeoacamaalnajfeacamaamgajnkaaajaakoabfjaakbabnaajgpacejabnjajhcabnbaahmagihacnbaaofajjfackbabpbajjkacmjaaplajkpacmjabbiakldacmjabckakbhabpbaadmakljacnbabejaklpackbabliacocabnjabkoabndacobabghaklaaaobabhbajfjaaobabjnaifjaaojabkoabodacpbabkoabfjaapjabkoabfjaaajaalmakckadhjabnoakdaadhjabpaakhjabcjaakoabdjadajackoabeoadbjaceoallnadbbaakoabfjaabcaabfaakjaabcaabnaakjaabcaacnaakjaaacaadbaakoaabcaadfaakjaacaaailaamfaacjaagdadffadcoaablaablaecoaaclaadjaecoaaidaalcaecoaadlaaeiaecoaaalaamgadcoaabdaaaoaecoaacdaaddaecoaaddaaaoaecoaaflaagjaecoaahlaakjaecoaafdaaddaecoaaedaaddaecoaaglaajdaecoaahdaakaaeejaagdadffadodaacladojacodaadladmfaaodaaddadmfaaadabdladmfaaadabcladfoadpeaacjabdfabdnablgabpaabamacblacdaacflacgbacgjachfachlacinacjbackaacklacmgacnmacebadejadliadahaaabaaaiaaadaaaaaachacjbaaaaaakaacjgaaaaaameackeaaacaabpaaadaaacaacaaaafaaabaacbaaafaaacaaccaaahaampaaaeiaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaahcafaaaaaeaaaaaaaaaaaaaaaaaaaaaaabaaglaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaabaaheaaaaaaaaaaaeaaaaaaaaaaaaaaaaaaaaaaabaaimafaaaaaaaaaaaaaaaaabaaaaaaflalaaaaaaaaaadmengpgehfgmgfdoaaefhifegpgpgmcogfhigfaafahcgpghhcgbgnaagfgbhdhjejgdgpgoaaefhigdhfhegfaaefgogdgpgegfhcaaebhfhegpeegfgmgfheaafegfhdheaafcgfhdgphfhcgdgfhdaagfgbhdhjejgdgpgocofahcgphagfhchegjgfhdaafdgfhehegjgoghhdaagnhdgdgphcgmgjgcaafdhjhdhegfgnaaepgcgkgfgdheaafdhjhdhegfgncoedgpgogggjghhfhcgbhegjgpgoaaebhahagmgjgdgbhegjgpgofdgfhehegjgoghhdecgbhdgfaagjhdeegfgchfghaagegfgmgbhjengjgmgmgjgpgofdgfgdgpgogeaahdgphfhcgdgfedgpgegfaahdgphfhcgdgfebhcghhdaagbhfhegpeegfgmgfheaaengbgjgoaaefhigdhfhegffahcgpgdgfhdhdaaefhggfgoheebhcghhdaafegjgngfhcfpfegjgdglaagfhigjheaafchfgoeggjgmgfeggjhchdheaafchfgofdgphfhcgdgfedgpgegfeggjhchdheaafchfgoaagggjgmgffegpfdhehcgjgoghaaghgfheeggjhchdhefahfgcgmgjgdengfhegigpgeaagjhdfahfgcgmgjgdfdhegbhegjgdengfhegigpgeaafdhjhdhegfgncoedgpgmgmgfgdhegjgpgohdcoehgfgogfhcgjgdaaemgjhdhegadbaaghgfheffhdgjgoghaaedgigfgdglebgegeebhdhdgfgngcgmhjaacogdhegphcaagfhigbgnhagmgfaaefgogdgpgegfaaeegfgdgpgegfaaefgogdgpgegfebgmhagigbgcgfheaafegpfdhehcaafegpedgigbhcaaeegfgdgpgegfebgmhagigbgcgfheaafegpechjhegfaagegfgmgfheejhehdgfgmggaafdgbhggfeggjgmgfaaeegfgngpaafdhjhdhegfgncofcgfhdgphfhcgdgfhdaafcgfhdgphfhcgdgfengbgogbghgfhcaahcgfhdgphfhcgdgfengbgoaafdhjhdhegfgncoehgmgpgcgbgmgjhkgbhegjgpgoaaedhfgmhehfhcgfejgogggpaahcgfhdgphfhcgdgfedhfgmhehfhcgfaaghgfhefpfcgfhdgphfhcgdgfengbgogbghgfhcaaghgfhefpedhfgmhehfhcgfaahdgfhefpedhfgmhehfhcgfaaedhfgmhehfhcgfaagegfgggbhfgmheejgohdhegbgogdgfaaghgfhefpeegfgggbhfgmheaaeegfgggbhfgmheaagbhcghhdaahdgfgogegfhcaagfaahdgphfhcgdgfeggjgmgfaagdgmgbhdhdeghfgmgmeogbgngfaagngfhegigpgeeogbgngfaagjhdfdhegbhegjgdengfhegigpgeaagbhdhdgfgngcgmgjgfhdaagggjgmgffagbhegiaahfhdgjgoghhdaahfhdgjgoghebhdhdgfgngcgmgfhjaagegbhegbaaecaagcaagoaagbdbaagbdcaahggbgmhfgfaafdhjhdhegfgncofchfgohegjgngfcofggfhchdgjgpgogjgoghaafegbhcghgfheeghcgbgngfhhgphcglebhehehcgjgchfhegfaafdhjhdhegfgncofcgfgggmgfgdhegjgpgoaaebhdhdgfgngcgmhjfegjhegmgfebhehehcgjgchfhegfaaebhdhdgfgngcgmhjeegfhdgdhcgjhahegjgpgoebhehehcgjgchfhegfaaebhdhdgfgngcgmhjedgpgogggjghhfhcgbhegjgpgoebhehehcgjgchfhegfaaebhdhdgfgngcgmhjedgpgnhagbgohjebhehehcgjgchfhegfaaebhdhdgfgngcgmhjfahcgpgehfgdheebhehehcgjgchfhegfaaebhdhdgfgngcgmhjedgphahjhcgjghgiheebhehehcgjgchfhegfaaebhdhdgfgngcgmhjfehcgbgegfgngbhcglebhehehcgjgchfhegfaaebhdhdgfgngcgmhjedhfgmhehfhcgfebhehehcgjgchfhegfaafdhjhdhegfgncofchfgohegjgngfcoejgohegfhcgphafdgfhchggjgdgfhdaaedgpgnfggjhdgjgcgmgfebhehehcgjgchfhegfaaehhfgjgeebhehehcgjgchfhegfaaebhdhdgfgngcgmhjfggfhchdgjgpgoebhehehcgjgchfhegfaaebhdhdgfgngcgmhjeggjgmgffggfhchdgjgpgoebhehehcgjgchfhegfaafdhjhdhegfgncoeegjgbghgogphdhegjgdhdaaeegfgchfghghgbgcgmgfebhehehcgjgchfhegfaaeegfgchfghghgjgoghengpgegfhdaafdhjhdhegfgncofchfgohegjgngfcoedgpgnhagjgmgfhcfdgfhchggjgdgfhdaaedgpgnhagjgmgbhegjgpgofcgfgmgbhigbhegjgpgohdebhehehcgjgchfhegfaafchfgohegjgngfedgpgnhagbhegjgcgjgmgjhehjebhehehcgjgchfhegfaaefhifegpgpgmaafdfeebfegihcgfgbgeebhehehcgjgchfhegfaafdhjhdhegfgncofhgjgogegphhhdcoeggphcgnhdaaebhahagmgjgdgbhegjgpgoaaefgogbgcgmgffggjhdhfgbgmfdhehjgmgfhdaafdgfheedgpgnhagbhegjgcgmgffegfhihefcgfgogegfhcgjgogheegfgggbhfgmheaafdhehcgjgoghaaefhbhfgbgmhdaafdhegbhchehdfhgjhegiaaghgfhefpemgfgoghhegiaafdhfgchdhehcgjgoghaaejgohedddcaafagbhchdgfaaebgegeaafegpebhchcgbhjaafegjgngfhcaahdgfhefpejgohegfhchggbgmaaefhggfgoheeigbgogegmgfhcaagbgegefpfegjgdglaahdgfhefpefgogbgcgmgfgeaafdhjhdhegfgncoejepaaeggjgmgfaaefhigjhdhehdaafegpfdhehcgjgoghaaedgpgogdgbheaaengfhdhdgbghgfecgphiaaeegjgbgmgpghfcgfhdhfgmheaafdgigphhaafdhegphaaaefgohggjhcgpgogngfgoheaaefhigjheaacogdgdhegphcaaefhigdgfhahegjgpgoaafdhjhdhegfgncoedgpgegfeegpgncoedgpgnhagjgmgfhcaaedgpgnhagjgmgfhcfagbhcgbgngfhegfhchdaahdgfhefpehgfgogfhcgbhegfefhigfgdhfhegbgcgmgfaahdgfhefpehgfgogfhcgbhegfejgoengfgngphchjaafdhjhdhegfgncoedgpgmgmgfgdhegjgpgohdcofdhagfgdgjgbgmgjhkgfgeaafdhehcgjgoghedgpgmgmgfgdhegjgpgoaaghgfhefpfcgfgggfhcgfgogdgfgeebhdhdgfgngcgmgjgfhdaaedgpgohegbgjgohdaaengjgdhcgphdgpgghecoedfdgigbhchaaaedfdgigbhchaedgpgegffahcgphggjgegfhcaaedgpgegfeegpgnfahcgphggjgegfhcaaedgpgnhagjgmgfhcfcgfhdhfgmhehdaaedgpgnhagjgmgfebhdhdgfgngcgmhjeghcgpgnfdgphfhcgdgfaaedgpgnhagjgmgfhcefhchcgphcedgpgmgmgfgdhegjgpgoaaghgfhefpefhchcgphchdaaghgfhefpeigbhdefhchcgphchdaafdhjhdhegfgncofegfhiheaafdhehcgjgoghechfgjgmgegfhcaafdhjhdhegfgncoedgpgmgmgfgdhegjgpgohdaaedgpgmgmgfgdhegjgpgoecgbhdgfaaejefgohfgngfhcgbhegphcaaehgfheefgohfgngfhcgbhegphcaaghgfhefpedhfhchcgfgoheaaedgpgnhagjgmgfhcefhchcgphcaaghgfhefpefhchcgphcfegfhiheaaebhahagfgogeemgjgogfaaengphggfeogfhiheaaejeegjhdhagphdgbgcgmgfaaeegjhdhagphdgfaaebhdhdgfgngcgmhjaaghgfhefpedgpgnhagjgmgfgeebhdhdgfgngcgmhjaafehjhagfaaehgfhefehjhagfhdaaghgfhefpeghfgmgmeogbgngfaaehgfhefehjhagfaaecgjgogegjgogheggmgbghhdaaecgjgogegfhcaaejgohggpglgfengfgngcgfhcaaedhcgfgbhegfejgohdhegbgogdgfaaengfhegigpgeejgogggpaaehgfheengfhegigpgeaaengfhegigpgeecgbhdgfaaejgohggpglgfaaefgogdgpgegjgoghaaghgfhefpfffeegdiaafdhehcgfgbgnfcgfgbgegfhcaafegfhihefcgfgbgegfhcaafcgfgbgefegpefgogeaaedgmgphdgfaafcgfhagmgbgdgfaaedgigbhcaafdhagmgjheaafehcgjgnaaejgogegfhiepggaaemgbhdheejgogegfhiepggaaefgogehdfhgjhegiaafehcgjgnefgogeaaghgfhefpejhegfgnaahdgfhefpejhegfgnaaghgfhefpedgphfgoheaaehgfheechjhegfhdaaebhahagfgogeaaechjhegfaafegpedgigbhcebhchcgbhjaaehgfhefdhehcgjgoghaaghgfhefpefhigfgdhfhegbgcgmgffagbhegiaaebhahaeegpgngbgjgoaaghgfhefpedhfhchcgfgoheeegpgngbgjgoaaghgfhefpecgbhdgfeegjhcgfgdhegphchjaaengphggfaafahcgpgdgfhdhdaafdhegbhcheaafdhehcgfgbgnfhhcgjhegfhcaafegfhihefhhcgjhegfhcaafhhcgjhegfaaehgfgogfhcgbhegfgeedgpgegfebhehehcgjgchfhegfaaeegfgchfghghgfhceogpgoffhdgfhcedgpgegfebhehehcgjgchfhegfaaedgpgnhagjgmgfhcehgfgogfhcgbhegfgeebhehehcgjgchfhegfaafcgfgggfhcgfgogdgfefhbhfgbgmhdaafchfgohegjgngffehjhagfeigbgogegmgfaaehgfhefehjhagfeghcgpgneigbgogegmgfaaghgfhefpebhdhdgfgngcgmhjaafdhjhdhegfgncoedgpgnhagpgogfgoheengpgegfgmaaefgegjhegphcechcgphhhdgbgcgmgfebhehehcgjgchfhegfaaefgegjhegphcechcgphhhdgbgcgmgffdhegbhegfaafdgfhehegjgoghhdecgbhdgfaafdhjgogdgihcgpgogjhkgfgeaagfgbhdhjejgdgpgocofahcgphagfhchegjgfhdcofcgfhdgphfhcgdgfhdcohcgfhdgphfhcgdgfhdaaaaaaaleeaaefaaecaaffaaehaaaabdebaaffaafeaaepaaeeaaefaaemaaefaafeaaaaaleeaaefaaemaaebaafjaaaaabaaafanaaakaaaacjenaagjaagdaahcaagpaahdaagpaaggaaheaacoaaedaafdaagiaagbaahcaahaaacoaageaagmaagmaaaabjgnaahdaagdaagpaahcaagmaagjaagcaacoaageaagmaagmaaaabffdaahjaahdaaheaagfaagnaacoaageaagmaagmaaaabpfdaahjaahdaaheaagfaagnaacoaaedaagpaahcaagfaacoaageaagmaagmaaaabpfdaahjaahdaaheaagfaagnaacoaaeeaagbaaheaagbaacoaageaagmaagmaaaaedfdaahjaahdaaheaagfaagnaacoaaeeaagbaaheaagbaacoaaeeaagbaaheaagbaafdaagfaaheaaefaahiaaheaagfaagoaahdaagjaagpaagoaahdaacoaageaagmaagmaaaacffdaahjaahdaaheaagfaagnaacoaaeeaahcaagbaahhaagjaagoaaghaacoaageaagmaagmaaaadbfdaahjaahdaaheaagfaagnaacoaafhaagjaagoaageaagpaahhaahdaacoaaegaagpaahcaagnaahdaacoaageaagmaagmaaaabnfdaahjaahdaaheaagfaagnaacoaafiaagnaagmaacoaageaagmaagmaaaachfdaahjaahdaaheaagfaagnaacoaafiaagnaagmaacoaaemaagjaagoaahbaacoaageaagmaagmaaaaajcoaageaagmaagmaaaaadakaaaaaphaaahfaagcaagmaagjaagdaacaaaaaadciaaaaadcjaaaaadcaaaaaanhdaaheaagbaaheaagjaagdaaaaanhfaahdaagjaagoaaghaacaaaaaaddlaaaaadcoaaaabhheaagfaahdaaheaacaaagfaagoaagdaagpaageaagfaaaablebaaemaafaaaeiaaebaaecaaefaafeaaedaaepaaeeaaefaaeaaaaaadceaaaaajcoaahgaagcaahdaaaaenfdaagfaaheaacaaahhaahdaacaaadnaacaaaedaahcaagfaagbaaheaagfaaepaagcaagkaagfaagdaaheaaciaaccaafhaahdaagdaahcaagjaahaaaheaacoaafdaagiaagfaagmaagmaaccaacjaaaacffhaafdaagdaahcaagjaahaaaheaacoaahdaagmaagfaagfaahaaacaaadeaadaaadaaadaaaaacfhhaahdaacoaahcaahfaagoaacaaaccaagdaagnaageaacaaacpaagdaacaaadpaadoaacaaaaabbccaacmaahgaagcaagiaagjaageaagfaaaachhhaahdaacoaahcaahfaagoaacaaaccaagdaagnaageaacaaacpaagdaacaaageaagfaagmaacaaaaabjcoaahgaagcaahdaaccaacmaahgaagcaagiaagjaageaagfaaaabdkifcabgabghpnbilghgcemiidkhjilepabppabdlgfaagbaahdaahjaaejaagdaagpaagoaacoaafaaahcaagpaahaaagfaahcaaheaagjaagfaahdaacoaafcaagfaahdaagpaahfaahcaagdaagfaahdaaaaaajbcjlfbopihbgieeleafhnicokcojdaoaaailhhkfmfgbjdeoaijacagacacagaiacagaoadagbnbmafaaababbnaoadaaaaabagaaacabbmbcanagaaacbmaobnbmalaaagbmaoaoaobnbmacbnaoaeaaabaoaoafaaacacaoaoaiaaabbfbcbbabaoaoajaaacabbfbcbbabaoaoadcaaaabafaaabaobnafaeaaabaoafaeaaabadaiafaaacafadadafaaacaoaoaoadagbcbfadagbcbjaeaaaabcbfaeaaaabcbjafaaababbcbjaeaiaabcbfaeaiaabcbjadagbccaaeaaaabccaaeaiaabccaaeaaaaaaaaabaaaecaababaoaecaababacafcaababbbffaecaababaiaeabaaaaaaaeaaababacafbfbcbbabaoaecaabacaoadcaaaaiaecaabaoaiaeaaabaiaoafcaababbdaaafcaaabnbdaabbahaibfbcbbabaoaobnaoaiacbnaoaibnbmafcaacabbmbiafcaababbchfaeaaabacaoadcaaaaoagaaadaoaoaoaoagaaabbbiaibaoagahadbchbbmacaeaaababaiahahadaobciaijbmakahafbnaoaoacbciaijbmafcaaabciajbaecaabaiaoakcaacbciajnbciainbnaoafcaaabciakbadcaaaacafcaaabciaknadcaaabmagcaabbciakfaoafcaaabcialjagcaaabnbcialnaicaadbcialnaoacacancaafbmaobbiambbciamfbmbnbmaecaabbmaoafcaaabcialnagcaabbciamjaoagcaacbmbmbnbmclahbdbciainaoaobciajnbciakfbcialbbcialjbcialnbmbmbciamjbciaijbmacbnaoaibnaobciaknbcialfafaaaabcianbahcaacabaobcianbaiahaeaobcianfaoacafcaacaoaoaoagcaabbnaobnadafcaacaoaiaiaoahajaobnaoaoaoaobnadbnaoaiacaoahajacbnaoaoaoacbnadbnaoaiacafcaabaobnadbhahakbnaobfbcbbabaoaoaoaobfbcbbabaobnadbnaoaiacafcaabacbdaaafcaabbdaaaiagcaacabaibdaaafahadaiaoacahahafaoaoaoacacafahadaoaoacafcaabbnafaoafahacbnafaoalahagbciakfafaobnafaiacafaaacaobmbmadahabaoadahabadaecaaabnadafcaabaobnafakahagbnafbnadaiafaoacadahabafadaaaaaoafaaaabciaofafaaacabaoaoagaaabbciaojaoamahaiaoaoaoaoaobciakfaoacaicaadabaoacbcianbagahacbciaonaoafcaacabaoaoeaabaaddfdhjhdhegfgncofcgfhdgphfhcgdgfhdcofegpgpgmhdcofdhehcgpgoghgmhjfehjhagfgefcgfhdgphfhcgdgfechfgjgmgegfhcahdecodacodacodaaaaaafaaacacbmbmaiaaabbcialnbbibabahcaacabaobcialjahahadbcbfbcbfacaeahabbcbjagcaababbbibajaiabaaacaaaaaaaaaafjabaaelengjgdhcgphdgpgghecofggjhdhfgbgmfdhehfgegjgpcoefgegjhegphchdcofdgfhehegjgoghhdeegfhdgjghgogfhccofdgfhehegjgoghhdfdgjgoghgmgfeggjgmgfehgfgogfhcgbhegphcaidbdbcodacodacodaaaaaaeahabbccaaiaaabbcibanbcibanehabaabkcoeoeffeeghcgbgngfhhgphcglcmfggfhchdgjgpgodnhgdecodaabaafeaobeeghcgbgngfhhgphcgleegjhdhagmgbhjeogbgngfbacoeoeffecaeghcgbgngfhhgphcglcadeamabaaahefhigdhfhegfhcaaaabhabaabcofikkiogiaibohlmjgoikpjbogijkhoikbimaaaaafabaaaaaaaaaoabaaajengjgdhcgphdgpggheaaaacaabaabledgphahjhcgjghgihecamckjcaengjgdhcgphdgpgghecadcdadbdhaaaacjabaacedhddgfgfdadegbdjcngbdeggdicndedadadccndidbdcdfcndgdigcdfdbdbdcgcdgdcgcdfaaaaamabaaahdbcodacodacodaaaaaaiabaaahabaaaaaaaaaiabaaaiaaaaaaaaaaboabaaabaafeacbgfhhcgbhaeogpgoefhigdgfhahegjgpgofegihcgphhhdabaaaaaaaaaaaaaanoiihlflaaaaaaaaacaaaaaabmabaaaadaemaaaadacoaaaafcfdeefdombombplacblknehkkcdlaiknhfjkkdlabaaaaaagedkfmhdgdgjfmfggjhdhfgbgmcafdhehfgegjgpcadcdadadifmfahcgpgkgfgdhehdfmefhigdhfhegfhcfmefhigdhfhegfhcfmgpgcgkfmeegfgchfghfmefhifegpgpgmcohagegcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaheenaaaaaaaaaaaaaaaaaaaaioenaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaenaaaaaaaaaaaaaaaaaaaaaaaafpedgphcefhigfengbgjgoaagnhdgdgphcgfgfcogegmgmaaaaaaaaaappcfaacaeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaabaaaaaaacaaaaaiabiaaaaaadiaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabaaaaaafaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaabaaaaaagiaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaajaaaaaaakagaaaaabaadaaaaaaaaaaaaaaaaaaaalagdaaaaokabaaaaaaaaaaaaaaaaaaaabaaddeaaaaaafgaafdaafpaafgaaefaafcaafdaaejaaepaaeoaafpaaejaaeoaaegaaepaaaaaaaaaalnaeoppoaaaaabaaaaaaabaaaaaaaaaaaaaaabaaaaaaaaaadpaaaaaaaaaaaaaaaeaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeeaaaaaaabaafgaagbaahcaaegaagjaagmaagfaaejaagoaaggaagpaaaaaaaaaaceaaaeaaaaaafeaahcaagbaagoaahdaagmaagbaaheaagjaagpaagoaaaaaaaaaaaaaalaaehaacaaaaabaafdaaheaahcaagjaagoaaghaaegaagjaagmaagfaaejaagoaaggaagpaaaaaaemacaaaaabaadaaadaaadaaadaaadaaadeaagcaadaaaaaaaciaaahaaabaaedaagpaagnaagnaagfaagoaaheaahdaaaaaakifcabgabghpnbilghgcemiiaaaaaaaadeaaakaaabaaedaagpaagnaahaaagbaagoaahjaaeoaagbaagnaagfaaaaaaaaaaenaagjaagdaahcaagpaahdaagpaaggaaheaaaaaadiaaaiaaabaaegaagjaagmaagfaaeeaagfaahdaagdaahcaagjaahaaaheaagjaagpaagoaaaaaaaaaaefaahiaagdaahfaaheaagfaahcaaaaaadaaaaiaaabaaegaagjaagmaagfaafgaagfaahcaahdaagjaagpaagoaaaaaaaaaadbaacoaadaaacoaadaaacoaadaaaaaaadiaaalaaabaaejaagoaaheaagfaahcaagoaagbaagmaaeoaagbaagnaagfaaaaaaefaahiaafeaagpaagpaagmaacoaagfaahiaagfaaaaaaaaaafmaablaaabaaemaagfaaghaagbaagmaaedaagpaahaaahjaahcaagjaaghaagiaaheaaaaaaedaagpaahaaahjaahcaagjaaghaagiaaheaacaaakjaacaaaenaagjaagdaahcaagpaahdaagpaaggaaheaacaaadcaadaaadbaadhaaaaaaaaaaeaaaalaaabaaepaahcaagjaaghaagjaagoaagbaagmaaegaagjaagmaagfaagoaagbaagnaagfaaaaaaefaahiaafeaagpaagpaagmaacoaagfaahiaagfaaaaaaaaaadaaaaiaaabaafaaahcaagpaageaahfaagdaaheaaeoaagbaagnaagfaaaaaaaaaaefaahiaagdaahfaaheaagfaahcaaaaaadeaaaiaaabaafaaahcaagpaageaahfaagdaaheaafgaagfaahcaahdaagjaagpaagoaaaaaadbaacoaadaaacoaadaaacoaadaaaaaaadiaaaiaaabaaebaahdaahdaagfaagnaagcaagmaahjaacaaafgaagfaahcaahdaagjaagpaagoaaaaaadbaacoaadaaacoaadaaacoaadaaaaaaaoplllpdmdphigngmcahggfhchdgjgpgodnccdbcodacccagfgogdgpgegjgoghdnccfffeegcndicccahdhegbgogegbgmgpgogfdncchjgfhdccdpdoanakdmgbhdhdgfgngcgmhjcahigngmgohddncchfhcgodkhdgdgigfgngbhdcngngjgdhcgphdgpgghecngdgpgndkgbhdgncohgdbcccagngbgogjgggfhdhefggfhchdgjgpgodnccdbcodaccdoanakcacadmgbhdhdgfgngcgmhjejgegfgohegjhehjcahggfhchdgjgpgodnccdbcodacodacodacccagogbgngfdnccenhjebhahagmgjgdgbhegjgpgocogbhahacccpdoanakcacadmhehchfhdheejgogggpcahigngmgohddncchfhcgodkhdgdgigfgngbhdcngngjgdhcgphdgpgghecngdgpgndkgbhdgncohgdcccdoanakcacacacadmhdgfgdhfhcgjhehjdoanakcacacacacacadmhcgfhbhfgfhdhegfgefahcgjhggjgmgfghgfhdcahigngmgohddncchfhcgodkhdgdgigfgngbhdcngngjgdhcgphdgpgghecngdgpgndkgbhdgncohgddccdoanakcacacacacacacacadmhcgfhbhfgfhdhegfgeefhigfgdhfhegjgpgoemgfhggfgmcagmgfhggfgmdnccgbhdejgohggpglgfhccccahfgjebgdgdgfhdhddnccgggbgmhdgfcccpdoanakcacacacacacadmcphcgfhbhfgfhdhegfgefahcgjhggjgmgfghgfhddoanakcacacacadmcphdgfgdhfhcgjhehjdoanakcacadmcphehchfhdheejgogggpdoanakdmcpgbhdhdgfgngcgmhjdoanakaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeaaaaaamaaaaaakadnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
    }
}
